RAID (redundant array of independent disks) is a category of disk drives that employ two or more drives in combination for fault tolerance and performance. The goal of a RAID is to provide more reliable disk storage and/or larger virtual disk capacity than is possible with a single hard disk. RAID arrays are usually implemented with identically-sized disk drives. A disk system with RAID capability can protect its data and provide online, immediate access to its data, despite a single disk failure (some RAID storage systems can withstand two concurrent disk failures). RAID disk drives are used frequently on servers but are not generally necessary for personal computers. There are 7 official levels: RAID Level 0 (RAID 0) to RAID Level 6 (RAID 6). There can also be combinations of RAID levels. The most common combinations are RAID 10 and RAID 0+1. JBOD (Just a Bunch of Disks) is a related array type.
RAID Level 0 (RAID 0) is not redundant, hence does not truly fit the “RAID” acronym. In level 0, data is split across drives, resulting in higher data throughput. Since no redundant information is stored, performance is very good, but the failure of any disk in the array results in data loss. This level is commonly referred to as striping.
RAID Level 1 (RAID 1) provides redundancy by writing all data to two or more drives. The performance of a level 1 array tends to be faster on reads and slower on writes compared to a single drive. However, if either drive fails, no data is lost. This is a good entry-level redundant system, since only two drives are required. On the other hand, since one drive is used to store a duplicate of the data, the cost per megabyte is high. This level is commonly referred to as mirroring.
RAID Level 2 (RAID 2), which uses Hamming error correction codes, is intended for use with drives which do not have built-in error detection. All SCSI drives support built-in error detection, so this level is of little use when using SCSI drives.
RAID Level 3 (RAID 3) stripes data at a byte level across several drives, with parity stored on one drive. It is otherwise similar to level 4. Byte-level striping requires hardware support for efficient use.
RAID Level 4 (RAID 4) stripes data at a block level across several drives, with parity stored on one drive. The parity information allows recovery from the failure of any single drive. The performance of a level 4 array is very good for reads (the same as level 0). Writes, however, require that parity data be updated each time. This slows small random writes in particular, even though large writes or sequential writes are fairly fast. Because only one drive in the array stores redundant data, the cost per megabyte of a level 4 array can be fairly low.
RAID Level 5 (RAID 5) is similar to level 4, but distributes parity among the drives. This can speed small writes in multiprocessing systems, since the parity disk does not become a bottleneck. However, because parity data must be skipped on each drive during reads, the performance for reads tends to be considerably lower than a level 4 array. The cost per megabyte is the same as for level 4.
RAID Level 6 (RAID 6) requires a minimum of three drives, but four are required to exceed RAID 1 space efficiency. Entire data block is written to data disk; parity is generated and written to two distributed parity strips, on two separate drives.
RAID 10 is sometimes called RAID 1+0. Multiple RAID 1 mirrors are created, and a RAID 0 stripe is created over these mirrors. This category does not fit with one of the original 6 levels, but is a combination of RAID 1 and 0. RAID 10 can potentially handle multiple simultaneous disk failures, as long as at least one disk of each mirrored pair is operable.
RAID 0+1 is also not one of the original 6 RAID levels. Two RAID 0 stripes are created, and a RAID 1 mirror is created over these two RAID 0 stripes. RAID 0+1 is not as robust as RAID 1+0. RAID 0+1 cannot tolerate two simultaneous disk failures, if the failure is not from the same stripe.
JBOD is an acronym for Just a Bunch of Disks. JBOD is not a type of RAID as there is no redundancy. Rather, JBOD simply takes multiple drives and stitches them together as if they were a larger drive.
RAID is designed to improve system reliability by adding redundancy and protecting against disk failures. However, RAID is not designed against power failures, which may lead to damaged data that is not recoverable. Conventionally, in order to ensure that a data storage system may survive a power failure, the data storage system power is cycled (i.e., powered down and powered up) occasionally. However, a data storage system such as a RAID storage system, and the like, often uses many drives for storing data. The conventional method may not be able to verify that each drive in the data storage system survives a power failure. Furthermore, the conventional method may lack automatic and online capability.
Thus, it would be desirable to provide a disk drive power cycle screening method and apparatus for a data storage system, which may automatically verify, even when the data storage system is in normal operation, that a drive in the data storage system survives a power failure.